home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / progtool / modula2 / module / joyevent.mod < prev    next >
Text File  |  1995-11-25  |  1KB  |  49 lines

  1. IMPLEMENTATION MODULE JoyEvent;
  2.  
  3. IMPORT XBIOS104;
  4. FROM SYSTEM IMPORT ADR,ADDRESS;
  5.  
  6. CONST MoveA0 = 13E8H;
  7.       RTS    = 4E75H;
  8.  
  9. TYPE RoutineRec = RECORD
  10.         Opcode : CARDINAL;
  11.         Offset : CARDINAL;
  12.         Adresse : ADDRESS;
  13.         Return : CARDINAL;
  14.      END(*RECORD*);
  15.  
  16. VAR Vector : XBIOS104.KBVectorPtr;
  17.     Routine : RoutineRec;
  18.     OldVec : ADDRESS;
  19.     Wert : BITSET;
  20.  
  21. PROCEDURE InitJoyEvent;
  22. BEGIN
  23.    Routine.Opcode:=MoveA0;
  24.    Routine.Offset :=2;
  25.    Routine.Adresse:=ADR(Wert);
  26.    Routine.Return:=RTS;
  27.    Vector:=XBIOS104.KeyboardVectors();
  28.    OldVec:=Vector^.joyvec;
  29.    Vector^.joyvec:=ADR(Routine.Opcode);
  30.    Wert:={};
  31. END InitJoyEvent;
  32.  
  33. PROCEDURE Joystick(VAR Event: JoyEvents);
  34. BEGIN
  35.    Event := NoEvents;
  36.    IF 10 IN Wert THEN INCL(Event, Right);END(*IF*);
  37.    IF 11 IN  Wert THEN INCL(Event,Left);END(*IF*);
  38.    IF 9 IN  Wert THEN INCL(Event,Up);END(*IF*);
  39.    IF 8 IN  Wert THEN INCL(Event,Down);END(*IF*);
  40. END Joystick;
  41.  
  42. PROCEDURE TermJoyEvent;
  43.  BEGIN
  44.    Vector:=XBIOS104.KeyboardVectors();
  45.    Vector^.joyvec:=OldVec;
  46. END TermJoyEvent;
  47.  
  48. END JoyEvent.
  49.